3 应用案例

本章将介绍DS-PAW的各种应用实例,具体包括:如何计算磁矩、如何计算反铁磁材料等;用户通过以下应用教程,将可以更深入了解DS-PAW软件的使用。

3.1 \(O\) 原子的磁矩计算


本节中我们将以单个氧原子体系为例来介绍磁性体系的计算。

3.1.1 \(O\) 原子自洽计算之文件准备


由于本次计算的是单个氧原子的磁矩,因此并不需要进行结构弛豫计算,我们直接从自洽计算开始,准备参数文件 scf.in 和结构文件 structure.asscf.in 如下:

task = scf
sys.symmetry = false
sys.structure = structure.as
sys.spin = collinear
cal.smearing = 1
cal.sigma = 0.01
cal.kpoints = [1, 1, 1]

本次计算的输入文件中以下几个参数需要重点关注:

  • sys.symmetry :本次计算中我们将在关闭对称性的情况下进行计算,因为在DS-PAW中可以通过对称性来减少程序的计算量,但是往往通过对称性优化之后,一些较为细节的东西将会不是特别准确,因此本次计算中将关闭对称性;

  • sys.spin :指定体系磁性,因为我们知道单个氧原子的磁矩是 2μB ,这里我们将设置体系的磁性为 collinear 也就是 共线自旋

  • cal.kpoints :在前面的章节中我们介绍过对于没有周期性的维度, K点 可以设置为1;

structure.as 文件参考如下:

Total number of atoms
1
Lattice
7.50000000 0.00000000 0.00000000
0.00000000 8.00000000 0.00000000
0.00000000 0.00000000 8.90000000
Cartesian
O  0.00000000 0.00000000 0.00000000

结构文件中我们使用笛卡尔坐标,因此我们设置第七行中坐标类型为 Cartesian ;为了使结构也尽量的减少对称性,手动晶格改为 [7.5,8,8.9] 格子。

3.1.2 run程序运行


准备好输入文件之后,将 scf.instructure.as 文件上传到安装了DS-PAW的环境上,运行 DS-PAW scf.in 命令。

3.1.3 analysis计算结果分析


根据上述的输入文件,计算完成之后将会得到 DS-PAW.logsystem.json 这2个文件。

使用文本编辑器或者在线显示 json 格式的网页中打开 system.json 文件,具体数据如下:

_images/2-1.png

system.jsonEigenvalue - Spin - Occupation 部分可得向上自旋的电子占据数为4,向下自旋的电子占据数为2,同时在 MagInfo 部分可得整个体系带有两个 2μB 的磁矩。



3.2 \(NiO\) 体系的反铁磁计算


本节中我们将以NiO体系为例介绍如何设置计算反铁磁计算。

3.2.1 \(NiO\) 体系自洽计算


本次案例中同样省去了结构弛豫这个过程,用户重现此案例时,可以自行尝试下进行结构弛豫计算,准备参数文件 scf.in 和结构文件 structure.asscf.in 如下:

task = scf
sys.structure = structure.as
sys.spin = collinear
cal.smearing = 4
cal.kpoints = [8, 8, 8]
cal.cutoff = 500

本次计算的输入文件中以下几个参数需要重点关注:

  • cal.smearing :本次计算中采用 四面体加布洛赫 的方法,当使用该方法时 sigma 将强制被设置为 0

  • sys.spin :指定体系磁性, NiO 为反铁磁材料因此我们需要设置磁性为 collinear 也就是 共线自旋

  • cal.cutoff :这里我们设置计算中平面波的截断为 500

structure.as 文件参考如下:

Total number of atoms
4
Lattice
4.16840000 2.08420000 2.08420000
2.08420000 4.16840000 2.08420000
2.08420000 2.08420000 4.16840000
Cartesian Mag
Ni 1.04210000 1.04210000 1.04210000   2.0
Ni 5.21050000 5.21050000 5.21050000   -2.0
O 3.12630000 3.12630000 3.12630000    0
O 7.29470000 7.29470000 7.29470000    0

可以注意到,在结构文件的第七行的 Cartesian 后面加入 Mag 标签,设置了这个标签之后就可以设置每个原子的磁矩,由于我们需要体现反铁磁(整个体系不显示磁矩,单个原子有磁矩),我们建立了四个原子的晶胞,一个Ni原子设置磁矩为 -2 ,另一个Ni原子设置磁矩为 2 ,两个O原子设置磁矩为 0

备注

  1. Mag 标签可设置体系中各原子的磁矩。线性自旋计算中添加每个原子的总磁矩即可;自旋轨道耦合计算中需添加x, y, z方向上的磁矩,添加标签为 Mag_x , Mag_y, Mag_z,在对应的原子坐标后添加三个方向上磁矩即可。以NiO体系为例,若进行自旋轨道耦合计算,磁矩设置应如下:

Total number of atoms
4
Lattice
4.16840000 2.08420000 2.08420000
2.08420000 4.16840000 2.08420000
2.08420000 2.08420000 4.16840000
Cartesian Mag_x Mag_y Mag_z
Ni 1.04210000 1.04210000 1.04210000   0.0 0.0 2.0
Ni 5.21050000 5.21050000 5.21050000   0.0 0.0 -2.0
O 3.12630000 3.12630000 3.12630000    0.0 0.0 0.0
O 7.29470000 7.29470000 7.29470000    0.0 0.0 0.0

3.2.2 run程序运行


准备好输入文件之后,将 scf.instructure.as 文件上传到安装了DS-PAW的环境上,运行 DS-PAW scf.in 命令。

3.2.3 analysis自洽计算结果分析


根据上述的输入文件,计算完成之后将会得到 DS-PAW.logsystem.json 这2个文件。在 system.json 中的 MagInfo 部分可得自洽完成之后总的磁矩为 1e-08 ,几乎为0。

3.2.4 \(NiO\) 体系态密度计算


之后准备进行态密度计算,准备参数文件 pdos.in 结构文件 structure.as 和自洽的二进制电荷密度文件 rho.bin ,此时 pdos.in 如下:

task = dos
sys.structure = structure.as
sys.spin = collinear
cal.iniCharge = ./rho.bin
cal.smearing = 4
cal.kpoints = [16, 16, 16]
cal.cutoff = 500
dos.range = [-10, 10]
dos.EfShift = true
dos.resolution = 0.05
dos.project = true

pdos.in 输入参数介绍:

  • dos.range :表示能量计算区间为-10到10;

  • dos.EfShift :表示能量计算区间是否按照自洽的费米能级平移,此例中dos的能量计算区间会在得到费米能级后进行平移;

  • dos.resolution :表示在能量计算区间内打点的间隔精度。此例能量范围为20 eV,间隔精度为0.05,对应打点数为400;

  • dos.project :控制态密度的投影计算,本次计算打开了态密度的投影。

3.2.5 run程序运行


将新建的 pdos.in 文件上传 NiO 的自洽文件夹上,运行 DS-PAW pdos.in 命令。

3.2.6 dos态密度计算结果分析


根据上述的输入文件,计算完成之后将会得到 DS-PAW.logdos.json 这2个文件。使用python工具对 dos.json 进行数据处理画出NiO的t2g和eg轨道,具体操作见辅助工具使用教程,可得不加U得到的态密度图如下所示:

_images/NiO-dos.png

3.2.7 \(NiO\) 体系DFT+U的态密度计算


NiO体系DFT+U的态密度计算的计算流程与前面的NiO体系的态密度计算的流程一致,我们只需要在前面的NiO体系的自洽和态密度的计算中都加入DFT+U相关的参数即可:

#correction related
corr.dftu=true
corr.dftuElements =[Ni]
corr.dftuOrbital=[d]
corr.dftuU = [8]
corr.dftuJ = [0.95]

本次计算的输入文件中以下几个参数需要重点关注:

  • corr.dftu 设置是否打开DFT+U的开关,本例子中设置为true;

  • corr.dftuElements 设置需要加U的元素,本例中为Ni;

  • corr.dftuOrbital 设置需要加U的轨道,本例中设置为d轨道;

  • corr.dftuU 设置具体的U值,本例中设置为8;

  • corr.dftuJ 设置具体的J值,本例中设置为0.95;

自洽和态密度计算完成之后,得到DFT+U之后的态密度图如下:

_images/NiO-U-dos.png

备注

  1. DFT+U可以设置多个元素对应轨道的U值,例如设置Ni的d轨道加U值为8,J值为0.95;O的p轨道加U值为1,J值为0,此时设置如下:corr.dftuElements =[Ni,O] corr.dftuOrbital=[d,p] corr.dftuU = [8,1] corr.dftuJ = [0.95,0]。



3.3 \(AuAl\) slab模型功函数计算


本节中我们将以Au和Al的异质结体系为例介绍如何进行功函数计算。

3.3.1 \(AuAl\) slab模型自洽计算之文件准备


本次案例中同样省去了结构弛豫这个过程,用户重现此案例时,可以自行尝试下进行结构弛豫计算,准备参数文件 scf.in 和结构文件 structure.asscf.in 如下:

task = scf
sys.structure = structure.as
sys.spin = collinear
cal.smearing = 4
cal.kpoints = [8, 8, 1]
cal.cutoff = 400

io.potential=true
potential.type = hartree

#correction related
corr.dipol = true
corr.dipolDirection = c

本次计算的输入文件中以下几个参数需要重点关注:

  • io.potential 为自洽中计算势函数的开关;

  • potential.type 控制势函数保存的类型,计算功函数的时候需要静电势的数据,这里我们设置potential.type = hartree;

  • corr.dipol 为偶极修正的开关;本例中设置为true;

  • corr.dipolDirection 本例中设置偶极修正的方向为晶格矢量的c方向。

structure.as文件参考如下:

Total number of atoms
8
Lattice
 4.06384898 0.00000000 0.00000000
 0.00000000 4.06384898 0.00000000
 0.00000000 0.00000000 20.00000000
Cartesian
Au 1.01596223 1.01596223 0.00000000
Au 3.04788672 3.04788672 0.00000000
Au 3.04788672 1.01596224 2.03914999
Au 1.01596224 3.04788672 2.03914999
Al 1.01596224 1.01596224 4.07109999
Al 3.04788673 3.04788673 4.07109999
Al 3.04788673 1.01596224 6.09585000
Al 1.01596224 3.04788673 6.09585000

3.3.2 run程序运行


准备好输入文件之后,将 scf.instructure.as 文件上传到安装了DS-PAW的环境上,运行DS-PAW scf.in命令。

3.3.3 workfunction功函数数据分析


根据上述的输入文件,计算完成之后将会得到 DS-PAW.logsystem.jsonpotential.json 等多个文件。我们将对 potential.json 文件进行数据处理既可以得到功函数。

使用 Device Studio 可直接对 potential.json 文件处理出图,其操作步骤为:Simulator-->DS-PAW-->Analysis Plot,选择 potential.json 即可,可根据作图要求自定义设置面板参数。DS处理得到的势函数曲线如下所示:

_images/Au-Al.png

通过势函数的面内平均图,我们可以得到Au和Al的真空电势分别为5.5 ev 和 4.6 eV

从system.json中读取费米能级为 0.113 eV

根据公式 \(w = -eϕ - E_{F}\) 得到Au和Al构成异质结之后,Au的功函数为 5.387 eV,Al的功函数为 4.487 eV。文献参考值[7]:Au的功函数在 5.10-5.47 eV区间,Al的功函数在 4.06-4.26 eV区间。